from celery_tasks.main import app
from datetime import datetime
from django.conf import settings
from orders.models import Order

@app.task(name='check_order')
def check_order():
    # 查询出所有已经超时的订单
    # 超时条件： 当前时间 > (订单生成时间 + 超时时间)   或者  (当前时间 - 超时时间) > 订单生成时间
    # 获得当前时间的时间戳
    now = datetime.now().timestamp()
    timeout_number = now - settings.ORDER_TIMEOUT
    # 将时间戳转换成日期格式
    timeout = datetime.fromtimestamp(timeout_number)
    # 查找订单，将未支付的并且已经过期的
    timeout_order_list = Order.objects.filter(order_status=0, created_time__lte=timeout)
    for order in timeout_order_list:
        order.order_status = 3
        order.save()
